<?php
/**
 * 采用yii2-queue扩展
 * Created by PhpStorm.
 * User: admin
 * Date: 2018/7/18
 * Time: 11:12
 */

namespace app\models;


use yii\queue\RetryableJobInterface;

class Queue implements RetryableJobInterface
{
    public $url;
    public $file;

    public function __construct($array)
    {
       $this->url = $array['url'];
       $this->file = $array['file'];
       return $this;
    }

    //这个函数是必须要有的因为接口的实现，这里的函数是在队列入队执行的
    public function execute($queue)
    {
        echo '我正在执行队列。。。';
        var_dump($this);
        //这里可以写业务逻辑
        file_put_contents($this->file, file_get_contents($this->url));
    }
   //这个是对队列任务的延迟设置
    public function getTtr()
    {
        echo 'ttr';
        return 0 * 60;
    }
   //设置任务的延迟重复
    public function canRetry($attempt, $error)
    {
        echo 'can try';
        return ($attempt < 5) && ($error );
    }


}